from selenium.webdriver.common.by import By
from base import BasePage, BaseHandle


class BrowserPage(BasePage):
    def __init__(self):
        super().__init__()
        self.browser_input_element = (By.ID, "org.chromium.webview_shell:id/url_field")
        self.browser_enter_element = (By.CLASS_NAME, "android.widget.ImageButton")

    def find_browser_input_element(self):
        return self.get_element(self.browser_input_element)

    def find_browser_enter_element(self):
        return self.get_element(self.browser_enter_element)


class BrowserHandle(BaseHandle):
    def __init__(self):
        self.browser_page = BrowserPage()

    def input_browser_input_element(self, browser_input_element):
        self.input_text(self.browser_page.find_browser_input_element(), browser_input_element)

    def click_browser_enter_element(self):
        self.browser_page.find_browser_enter_element().click()


class BrowserProxy:
    def __init__(self):
        self.browser_handle = BrowserHandle()

    def go_hm_page(self, browser_input_element):
        self.browser_handle.input_browser_input_element(browser_input_element)
        self.browser_handle.click_browser_enter_element()